home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / dist-packages / UpdateManager / GtkProgress.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  4.5 KB  |  114 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import pygtk
  5. pygtk.require('2.0')
  6. import gtk
  7. import apt
  8. import apt_pkg
  9. from gettext import gettext as _
  10. from Core.utils import *
  11. STEPS_UPDATE_CACHE = [
  12.     33,
  13.     66,
  14.     100]
  15.  
  16. class GtkOpProgress(apt.OpProgress):
  17.     
  18.     def __init__(self, host_window, progressbar, status, parent, steps = STEPS_UPDATE_CACHE):
  19.         self.steps = steps[:]
  20.         self.base = 0
  21.         self.old = 0
  22.         self.next = int(self.steps.pop(0))
  23.         self._parent = parent
  24.         self._window = host_window
  25.         self._status = status
  26.         self._progressbar = progressbar
  27.         self._window.realize()
  28.         host_window.window.set_functions(gtk.gdk.FUNC_MOVE)
  29.         self._window.set_transient_for(parent)
  30.  
  31.     
  32.     def update(self, percent):
  33.         state = self._parent.window.get_state()
  34.         if not state & gtk.gdk.WINDOW_STATE_ICONIFIED:
  35.             self._window.show()
  36.         
  37.         self._parent.set_sensitive(False)
  38.         if self.old > percent:
  39.             self.base = self.next
  40.             
  41.             try:
  42.                 self.next = int(self.steps.pop(0))
  43.  
  44.         
  45.         progress = self.base + (percent / 100) * (self.next - self.base)
  46.         self.old = percent
  47.         self._status.set_markup('<i>%s</i>' % self.op)
  48.         self._progressbar.set_fraction(progress / 100)
  49.         while gtk.events_pending():
  50.             gtk.main_iteration()
  51.  
  52.     
  53.     def done(self):
  54.         self._parent.set_sensitive(True)
  55.  
  56.     
  57.     def hide(self):
  58.         self._window.hide()
  59.  
  60.  
  61.  
  62. class GtkFetchProgress(apt.progress.FetchProgress):
  63.     
  64.     def __init__(self, parent, summary = '', descr = ''):
  65.         self._continue = True
  66.         self.summary = parent.label_fetch_summary
  67.         self.status = parent.label_fetch_status
  68.         self.progress = parent.progressbar_fetch
  69.         self.window_fetch = parent.window_fetch
  70.         self.window_fetch.set_transient_for(parent.window_main)
  71.         self.window_fetch.realize()
  72.         self.window_fetch.window.set_functions(gtk.gdk.FUNC_MOVE)
  73.         if self.summary != '':
  74.             self.summary.set_markup('<big><b>%s</b></big> \n\n%s' % (summary, descr))
  75.         
  76.  
  77.     
  78.     def start(self):
  79.         self.progress.set_fraction(0)
  80.         self.window_fetch.show()
  81.  
  82.     
  83.     def stop(self):
  84.         self.window_fetch.hide()
  85.  
  86.     
  87.     def on_button_fetch_cancel_clicked(self, widget):
  88.         self._continue = False
  89.  
  90.     
  91.     def pulse(self):
  92.         apt.progress.FetchProgress.pulse(self)
  93.         currentItem = self.currentItems + 1
  94.         if currentItem > self.totalItems:
  95.             currentItem = self.totalItems
  96.         
  97.         if self.currentCPS > 0:
  98.             statusText = _('Downloading file %(current)li of %(total)li with %(speed)s/s') % {
  99.                 'current': currentItem,
  100.                 'total': self.totalItems,
  101.                 'speed': humanize_size(self.currentCPS) }
  102.         else:
  103.             statusText = _('Downloading file %(current)li of %(total)li') % {
  104.                 'current': currentItem,
  105.                 'total': self.totalItems }
  106.             self.progress.set_fraction(self.percent / 100)
  107.         self.status.set_markup('<i>%s</i>' % statusText)
  108.         self.progress.set_text('')
  109.         while gtk.events_pending():
  110.             gtk.main_iteration()
  111.         return self._continue
  112.  
  113.  
  114.